/**
 * @projectName 高校就业网
 * @package com.kzj.CollegeEmploymentNetwork.model
 * @className com.kzj.CollegeEmploymentNetwork.model.Candidate
 * @copyright Copyright 2025 Thunisoft, Inc. All rights reserved.
 */
package com.kzj.CollegeEmploymentNetwork.model;

import javax.persistence.Column;
import javax.persistence.Table;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import com.kzj.CollegeEmploymentNetwork.common.BaseEntity;
import javax.validation.constraints.Size;
import com.kzj.CollegeEmploymentNetwork.validate.Validate;
import java.time.LocalDate;
import org.springframework.format.annotation.DateTimeFormat;
import com.alibaba.fastjson.annotation.JSONField;
import com.thunisoft.artery.data.annotation.CodeType;


/**
 * Candidate
 *
 * @description 应聘者表实体
 * @author kzj
 * @date 2025年01月20日 23:11:54
 * @version 1.0.0
 **/
@ApiModel("应聘者表")
@Table(name="db_recruit.t_candidate")    
@Getter
@Setter
@ToString
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Candidate extends BaseEntity{
    
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1L;
    
    /**
     * 外键：用户
     */
    @ApiModelProperty("外键：用户")
    @Column(name = "c_bh_user", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "外键：用户的最大长度为32")
    private String bhUser;

    /**
     * 微信标识
     */
    @ApiModelProperty("微信标识")
    @Column(name = "c_wx_uer_id", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "微信标识的最大长度为300")
    private String wxUerId;

    /**
     * 姓
     */
    @ApiModelProperty("姓")
    @Column(name = "c_last_name", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "姓的最大长度为32")
    private String lastName;

    /**
     * 名
     */
    @ApiModelProperty("名")
    @Column(name = "c_first_name", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "名的最大长度为32")
    private String firstName;

    /**
     * 性别
     */
    @ApiModelProperty("性别")
    @Column(name = "n_sex")
    @CodeType("cy_005")
    private Integer sex;

    /**
     * 头像
     */
    @ApiModelProperty("头像")
    @Column(name = "c_profile_photo", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "头像的最大长度为300")
    private String profilePhoto;

    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    @Column(name = "c_phone", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "手机号的最大长度为32")
    private String phone;

    /**
     * 邮箱
     */
    @ApiModelProperty("邮箱")
    @Column(name = "c_email", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "邮箱的最大长度为32")
    private String email;

    /**
     * 生日
     */
    @ApiModelProperty("生日")
    @Column(name = "d_birthday", columnDefinition = "date")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format = "yyyy-MM-dd")
    private LocalDate birthday;

    /**
     * 学历
     */
    @ApiModelProperty("学历")
    @Column(name = "n_education_background")
    @CodeType("cy_006")
    private Integer educationBackground;

    /**
     * 求职状态
     */
    @ApiModelProperty("求职状态")
    @Column(name = "n_status")
    @CodeType("cy_004")
    private Integer status;

}